package com.example.interesting.distributed.lock.realize.entity;

import com.example.interesting.distributed.lock.realize.strategy.DistributedLockExecutorStrategy;
import lombok.AllArgsConstructor;
import lombok.Data;

/**
 * @author fyw
 * @version 1.0
 * @description: 分布式锁信息
 * @date 2024/3/16 13:58
 */
@Data
@AllArgsConstructor
public class DistributedLockInfo {

    /**
     * 分布式锁资源名称，即redis第一层级名，为空的话取“包名+类名+方法名”
     */
    private String name;


    /**
     * 分布式锁的过期时间，单位毫秒，默认30000毫秒
     */
    private long expire;

    /**
     * 分布式锁获取超时时间，单位毫秒，默认30000毫秒
     */
    private long acquireTimeout;

    /**
     * 分布式锁实例信息
     */
    private Object rLockInstance;

    /**
     * 锁执行器
     */
    private DistributedLockExecutorStrategy executorStrategy;


}
